#定义变量
CC := gcc	
log := thirdparty/log/log.h thirdparty/log/log.c
cjson := thirdparty/cJSON/cJSON.h thirdparty/cJSON/cJSON.c
CFLAGS := -g -O0 -Wall  # 添加调试信息并禁用优化
Common_Config := Common/Common_Config.c Common/Common_Config.h 
app_message := app/app_message.h app/app_message.c
app_mqtt := app/app_mqtt.h app/app_mqtt.c


#一般第一个放最重要的main，使得在终端里敲make即可从上往下编译


# clean目标不依赖任何文件
# 作用：清理编译的临时文件
clean:
	rm *.o 


test_log.o: test/test_log.c $(log)
	-$(CC) $(CFLAGS) $^ -o $@ -Ithirdparty/log	#-表示若有错误忽略错误，往下执行；$取变量的值； $^表示依赖文件 $@表示目标文件; gcc -I 选项用于指定头/包含文件(header files)的搜索路径
	./$@										#执行目标文件
	-rm $@										#删除目标文件

test_cjson.o: test/test_cJson.c $(cjson) $(log)
	-$(CC) $(CFLAGS) $^ -o $@ -Ithirdparty/log -Ithirdparty/cJSON
	-./$@
	-rm $@

test_Common_Config.o: test/test_Common_Config.c $(Common_Config) $(log)
	-$(CC) $^ -o $@ -Ithirdparty/log -ICommon
	-./$@
	-rm $@


test_app_message.o: test/test_app_message.c $(app_message) $(cjson) $(Common_Config) $(log) 
	-$(CC) $^ -o $@ -Ithirdparty/log -Ithirdparty/cJSON -ICommon -Iapp
	-./$@
	-rm $@



test_app_mqtt.o: test/test_app_mqtt.c $(app_mqtt) $(log)
	-$(CC) $^ -o $@ -Ithirdparty/log -Iapp -lpaho-mqtt3c
	-./$@
	-rm $@

